home *** CD-ROM | disk | FTP | other *** search
-
-
-
- DDDDLLLLAAAASSSSDDDD3333((((3333SSSS)))) DDDDLLLLAAAASSSSDDDD3333((((3333SSSS))))
-
-
-
- NNNNAAAAMMMMEEEE
- DLASD3 - find all the square roots of the roots of the secular equation,
- as defined by the values in D and Z
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- SUBROUTINE DLASD3( NL, NR, SQRE, K, D, Q, LDQ, DSIGMA, U, LDU, U2, LDU2,
- VT, LDVT, VT2, LDVT2, IDXC, CTOT, Z, INFO )
-
- INTEGER INFO, K, LDQ, LDU, LDU2, LDVT, LDVT2, NL, NR, SQRE
-
- INTEGER CTOT( * ), IDXC( * )
-
- DOUBLE PRECISION D( * ), DSIGMA( * ), Q( LDQ, * ), U( LDU, *
- ), U2( LDU2, * ), VT( LDVT, * ), VT2( LDVT2, * ), Z( *
- )
-
- IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
- These routines are part of the SCSL Scientific Library and can be loaded
- using either the -lscs or the -lscs_mp option. The -lscs_mp option
- directs the linker to use the multi-processor version of the library.
-
- When linking to SCSL with -lscs or -lscs_mp, the default integer size is
- 4 bytes (32 bits). Another version of SCSL is available in which integers
- are 8 bytes (64 bits). This version allows the user access to larger
- memory sizes and helps when porting legacy Cray codes. It can be loaded
- by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
- only one of the two versions; 4-byte integer and 8-byte integer library
- calls cannot be mixed.
-
- PPPPUUUURRRRPPPPOOOOSSSSEEEE
- DLASD3 finds all the square roots of the roots of the secular equation,
- as defined by the values in D and Z. It makes the appropriate calls to
- DLASD4 and then updates the singular vectors by matrix multiplication.
-
- This code makes very mild assumptions about floating point arithmetic. It
- will work on machines with a guard digit in add/subtract, or on those
- binary machines without guard digits which subtract like the Cray XMP,
- Cray YMP, Cray C 90, or Cray 2. It could conceivably fail on hexadecimal
- or decimal machines without guard digits, but we know of none.
-
- DLASD3 is called from DLASD1.
-
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- NL (input) INTEGER
- The row dimension of the upper block. NL >= 1.
-
- NR (input) INTEGER
- The row dimension of the lower block. NR >= 1.
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- DDDDLLLLAAAASSSSDDDD3333((((3333SSSS)))) DDDDLLLLAAAASSSSDDDD3333((((3333SSSS))))
-
-
-
- SQRE (input) INTEGER
- = 0: the lower block is an NR-by-NR square matrix.
- = 1: the lower block is an NR-by-(NR+1) rectangular matrix.
-
- The bidiagonal matrix has N = NL + NR + 1 rows and M = N + SQRE >=
- N columns.
-
- K (input) INTEGER
- The size of the secular equation, 1 =< K = < N.
-
- D (output) DOUBLE PRECISION array, dimension(K)
- On exit the square roots of the roots of the secular equation, in
- ascending order.
-
- Q (workspace) DOUBLE PRECISION array,
- dimension at least (LDQ,K).
-
- LDQ (input) INTEGER
- The leading dimension of the array Q. LDQ >= K.
-
- DSIGMA (input) DOUBLE PRECISION array, dimension(K) The first K
- elements of this array contain the old roots of the deflated
- updating problem. These are the poles of the secular equation.
-
- U (input) DOUBLE PRECISION array, dimension (LDU, N)
- The last N - K columns of this matrix contain the deflated left
- singular vectors.
-
- LDU (input) INTEGER
- The leading dimension of the array U. LDU >= N.
-
- U2 (input) DOUBLE PRECISION array, dimension (LDU2, N)
- The first K columns of this matrix contain the non-deflated left
- singular vectors for the split problem.
-
- LDU2 (input) INTEGER
- The leading dimension of the array U2. LDU2 >= N.
-
- VT (input) DOUBLE PRECISION array, dimension (LDVT, M)
- The last M - K columns of VT' contain the deflated right singular
- vectors.
-
- LDVT (input) INTEGER
- The leading dimension of the array VT. LDVT >= N.
-
- VT2 (input) DOUBLE PRECISION array, dimension (LDVT2, N)
- The first K columns of VT2' contain the non-deflated right
- singular vectors for the split problem.
-
- LDVT2 (input) INTEGER
- The leading dimension of the array VT2. LDVT2 >= N.
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- DDDDLLLLAAAASSSSDDDD3333((((3333SSSS)))) DDDDLLLLAAAASSSSDDDD3333((((3333SSSS))))
-
-
-
- IDXC (input) INTEGER array, dimension ( N )
- The permutation used to arrange the columns of U (and rows of VT)
- into three groups: the first group contains non-zero entries only
- at and above (or before) NL +1; the second contains non-zero
- entries only at and below (or after) NL+2; and the third is dense.
- The first column of U and the row of VT are treated separately,
- however.
-
- The rows of the singular vectors found by DLASD4 must be likewise
- permuted before the matrix multiplies can take place.
-
- CTOT (input) INTEGER array, dimension ( 4 )
- A count of the total number of the various types of columns in U
- (or rows in VT), as described in IDXC. The fourth column type is
- any column which has been deflated.
-
- Z (input) DOUBLE PRECISION array, dimension (K)
- The first K elements of this array contain the components of the
- deflation-adjusted updating row vector.
-
- INFO (output) INTEGER
- = 0: successful exit.
- < 0: if INFO = -i, the i-th argument had an illegal value.
- > 0: if INFO = 1, an singular value did not converge
-
- FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
- Based on contributions by
- Ming Gu and Huan Ren, Computer Science Division, University of
- California at Berkeley, USA
-
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- INTRO_LAPACK(3S), INTRO_SCSL(3S)
-
- This man page is available only online.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-